<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 函数参数默认值
        // 在ES6以前无法给函数参数设置默认值，只能曲线救国
        function add(a, b) {
            // 若b为空，则给默认值2
            b = b || 2;
            return a + b;
        }
        console.log(add(10))

        // ES6写法
        function add2(a, b = 2) {
            return a + b;
        }
        console.log(add2(22))

        // 不定参数，不定参数用来表示不确定参数个数
        function f(...values) {
            console.log(values.length);
        }
        f(1, 2);      //2
        f(1, 2, 3, 4);  //4

        // 箭头函数,提供了一种更加简洁的函数书写方式。基本语法是：参数 => 函数体,不能使用this关键字
        var fu = function(a,b){
            let result = a + b;
            console.log(result)
        }
        fu(6,2)
        // 等价于
        var fs = (a, b) => {
            let result = a + b;
            console.log(result)
        }
        fs(6, 2);  // 8

        // 组合，箭头函数 + 解构
        const person = {
            name:'微雨',
            age:22
        }
        function p(person){
            console.log(person.name)
        }
        p(person)
        // 等价于
        var p1 = (person) => console.log(person.name)
        p1(person)
        // 等价于
        var p2 = ({name}) => console.log(name)
        p2(person)
    </script>
</body>

</html>